function ossUpload(file, callback) {
  return new Promise((resolve, reject) => {
    let clientOptions = {
      // yourRegion填写Bucket所在地域。以华东1（杭州）为例，yourRegion填写为oss-cn-hangzhou。
      region: "zhangjiakou",
      // 从STS服务获取的临时访问密钥（AccessKey ID和AccessKey Secret）。
      accessKeyId: "LTAI5tBEFrgxyJjeSQ5MucNt",
      accessKeySecret: "RNreV105DN8ZSVZYwoV76yGFhl0HVn",
      // 填写Bucket名称。
      bucket: "zaxt-ossfileupload",
      endpoint: "oss-cn-zhangjiakou.aliyuncs.com",
    };
    let time = new Date().getTime();

    let client = new OSS(clientOptions);

    let filenName = `custom/${time}/${file.name}`;

    const options = {
      // 获取分片上传进度、断点和返回值。
      progress: (p, cpt, res) => {
        callback(p);
      },
      // headers,
      timeout: 120000, //设置超时时间
      // 设置并发上传的分片数量。
      parallel: 4,
      // 设置分片大小。默认值为1 MB，最小值为100 KB。
      partSize: 1024 * 1024,
      mime: file.type,
    };

    try {
      client.multipartUpload(filenName, file.raw, options).then((res) => {
        if (res.res.status === 200) {
          let ossAddress = `http://${clientOptions.bucket}.${clientOptions.endpoint}/${filenName}`;
          resolve({
            ossAddress,
            objectName: res.name,
            name: file.name,
            status: "uploaded",
          });
        } else {
          reject(res);
        }
      });
    } catch (error) {
      reject(error);
    }
  });
}

export { ossUpload };
